'use strict'; // 启用严格模式
exports.main = async (event, context) => { // 云函数入口函数
  // 1. 获取数据库实例
  const db = uniCloud.database(); 
  // 2. 获取名为"user"的集合引用
  const userDb = db.collection('user'); 

  try {
    // 3. 基础校验：确保必填字段存在（兜底）
    if (!event.username || !event.password) {
      return {
        code: -1,
        msg: '用户名和密码不能为空'
      };
    }

    // 4. 构造干净的插入数据（只传Schema需要的字段，避免多余字段报错）
    const addData = {
      username: event.username.trim(),
      password: event.password,
      nickname: event.nickname || '默认昵称',
      gender: event.gender || 0,
      phone: event.phone || '',
      email: event.email || ''
    };

    // 5. 插入数据
    let addUserRes = await userDb.add(addData); 

    // 6. 返回前端能识别的成功结果
    return {
      code: 0,
      msg: '注册成功',
      data: {
        userId: addUserRes.id // 返回用户ID，方便前端使用
      }
    };

  } catch (err) {
    // 7. 捕获所有错误，返回友好提示
    let errMsg = '注册失败';
    // 用户名重复报错
    if (err.errMsg.includes('duplicate key')) {
      errMsg = '用户名已存在，请更换';
    }
    // 数据格式不符合Schema报错
    else if (err.errMsg.includes('validation failed')) {
      errMsg = '数据格式错误（手机号/邮箱格式不对）';
    }

    return {
      code: -1,
      msg: errMsg
    };
  }
};